Embodiments of the inventive concepts disclosed herein are generally directed to computing systems and methods for confirming the integrity of a computing environment.
Computing systems have evolved from large mainframe computers that formerly filled an entire room and cost millions of dollars, to miniature devices smaller than a dime and costing less than one dollar. In recent years, an increasing number of computing systems of all sizes are being connected to data communication networks. Even the computing systems used to operate and control ground vehicles and aircraft are now being connected to communication networks. By being connected to a network like the Internet that is available to essentially anyone, computing systems may be subject to the risk of unwanted, unauthorized or possibly harmful access, modification, or control by some outside party. It has become increasingly important to ensure that a computing system has not been compromised in any way so that the expected outcome of the desired computing operation may be achieved without loss of information, function, or safety.
Various approaches have been used to prevent unauthorized access to computing systems, including so-called firewalls that limit access to computers from networks such as the Internet, user authentication such as password verification, blacklisting (keeping a list of recognized bad actors), whitelisting (keeping a list of trusted actors), and the like. In spite of all of these efforts to prevent unauthorized access, outside parties have continued to successfully defeat these protection mechanisms, and have gained access to computing systems to extract private user data, install potentially harmful software (malware), interfere with the availability and use of the computer system, and carry out other unauthorized and unintended exploits.